Decision Tree এবং Random Forest

Machine Learning - পাইথন ডেটা সায়েন্স (Python Data Science) - Classification Algorithms
191

Decision Tree এবং Random Forest হল দুটি জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম যা supervised learning-এ ব্যবহৃত হয়, বিশেষ করে classification এবং regression কাজের জন্য। তারা সিদ্ধান্ত গ্রহণের প্রক্রিয়া সহজ এবং ব্যাখ্যাযোগ্য। তবে, তারা কিছু বিষয়ে একে অপর থেকে আলাদা, এবং Random Forest অনেক ক্ষেত্রেই Decision Tree থেকে উন্নত ফলাফল প্রদান করে।


১. Decision Tree

Decision Tree একটি গাছের মতো গঠন তৈরি করে, যেখানে প্রতিটি অভ্যন্তরীণ নোড একটি সিদ্ধান্ত বা একটি শর্ত প্রকাশ করে এবং প্রতিটি শাখা সেই শর্তের উপর ভিত্তি করে ডেটা বিভাজন করে। এর শেষের নোডগুলো হলো leaf nodes, যেগুলিতে একটি ফলাফল বা পূর্বাভাস থাকে।

Decision Tree এর কাজের মূল ধারণা:

  1. Root Node: গাছের শুরুর নোড যেখানে ডেটা সঠিকভাবে বিভক্ত করা শুরু হয়।
  2. Splitting: গাছের শাখাগুলো ডেটার বিভিন্ন বৈশিষ্ট্য বা শর্তের ওপর ভিত্তি করে বিভক্ত করা হয়।
  3. Leaf Nodes: গাছের শেষে যে নোডগুলোতে চূড়ান্ত সিদ্ধান্ত বা পূর্বাভাস থাকে।
  4. Pruning: অপ্রয়োজনীয় শাখাগুলো কেটে ফেলা, যাতে গাছের জটিলতা কমানো যায় এবং overfitting প্রতিরোধ করা যায়।

Decision Tree Algorithm:

  • Decision Tree সাধারণত Gini Impurity, Entropy (Information Gain) ইত্যাদি মেট্রিক্স ব্যবহার করে সবচেয়ে ভালো বৈশিষ্ট্য বাছাই করে ডেটাকে বিভক্ত করতে সাহায্য করে।

উদাহরণ:

from sklearn.tree import DecisionTreeClassifier

# ডেটাসেট
X = [[0, 0], [1, 1]]
y = [0, 1]

# Decision Tree মডেল তৈরি
clf = DecisionTreeClassifier(random_state=0)
clf = clf.fit(X, y)

# পূর্বাভাস করা
prediction = clf.predict([[2., 2.]])
print(prediction)

Decision Tree এর সুবিধা:

  • সহজ এবং ব্যাখ্যাযোগ্য: সিদ্ধান্ত গাছের কাঠামো সোজা এবং বুঝতে সহজ, তাই এটি ব্যবহারকারীকে সহজে ব্যাখ্যা করা যায়।
  • ডেটার বিভিন্ন ধরণের সাথে কাজ করতে পারে: ক্যাটেগোরিকাল এবং ন্যুমেরিক্যাল ডেটার সাথে কাজ করতে সক্ষম।

অসুবিধা:

  • Overfitting: Decision Tree খুব গভীর হলে সহজেই overfitting এর শিকার হতে পারে, যা মডেলের সক্ষমতা কমিয়ে দেয়।
  • কম্পিউটেশনালভাবে ব্যয়বহুল: Decision Tree অনেক গভীর হলে প্রশিক্ষণের সময় বাড়ে এবং এটি কম্পিউটেশনালভাবে ব্যয়বহুল হতে পারে।

২. Random Forest

Random Forest হল Decision Tree এর একটি শক্তিশালী ভেরিয়েন্ট যা একাধিক Decision Tree তৈরি করে এবং তাদের ফলাফলগুলি একত্রিত (ensemble) করে চূড়ান্ত সিদ্ধান্ত গ্রহণ করে। এটি bagging (Bootstrap Aggregating) কৌশল ব্যবহার করে, যেখানে একাধিক Decision Tree তৈরি হয় এবং তাদের মধ্যে কাস্টমাইজড ফলাফল পাওয়া যায়।

Random Forest এর মূল ধারণা:

  1. Bootstrap Sampling: Random Forest ডেটা সেট থেকে একাধিক স্যাম্পল নিয়ে প্রতিটি Decision Tree প্রশিক্ষিত হয়।
  2. Random Subspace: প্রতিটি Decision Tree প্রশিক্ষণের সময় শুধুমাত্র কিছু বৈশিষ্ট্য বা ফিচার থেকে বিভাজন করা হয়, যা বৈশিষ্ট্যগুলি ঐক্যবদ্ধ করার মাধ্যমে বায়াস কমায়।
  3. Voting: Random Forest-এ Decision Trees এর চূড়ান্ত ফলাফল (classification বা regression) ভোটিং বা গড় করার মাধ্যমে নির্ধারিত হয়।

Random Forest Algorithm:

  • Bagging: একাধিক Decision Tree তৈরি করার পর তাদের ভোটের মাধ্যমে চূড়ান্ত সিদ্ধান্ত নেওয়া হয়। এটি overfitting কমানোর জন্য কাজ করে।

উদাহরণ:

from sklearn.ensemble import RandomForestClassifier

# ডেটাসেট
X = [[0, 0], [1, 1]]
y = [0, 1]

# Random Forest মডেল তৈরি
clf = RandomForestClassifier(n_estimators=100, random_state=0)
clf = clf.fit(X, y)

# পূর্বাভাস করা
prediction = clf.predict([[2., 2.]])
print(prediction)

Random Forest এর সুবিধা:

  • Overfitting কমানো: একাধিক Decision Tree ব্যবহার করার ফলে, একক Decision Tree এর তুলনায় overfitting কম হয়।
  • শক্তিশালী এবং নির্ভুল: Random Forest অনেক বেশি স্টেবল এবং আরও নির্ভুল ফলাফল প্রদান করে, কারণ এটি একাধিক সিদ্ধান্তের উপর ভিত্তি করে চূড়ান্ত সিদ্ধান্ত নেয়।
  • Feature Importance: Random Forest বৈশিষ্ট্যগুলির মধ্যে গুরুত্বপূর্ণ বৈশিষ্ট্যগুলি চিহ্নিত করতে সহায়ক।
  • কম্পিউটেশনাল ক্ষমতা: যদিও এটি Decision Tree থেকে বেশি প্রশিক্ষণ সময় নেয়, তবে এটি ডেটার বড় সেটে আরও ভাল কাজ করে।

অসুবিধা:

  • ব্যাখ্যাযোগ্যতা: Decision Tree এর তুলনায় Random Forest মডেল ব্যাখ্যা করা অনেক কঠিন।
  • কম্পিউটেশনালভাবে ব্যয়বহুল: একাধিক Decision Tree তৈরি করার কারণে Random Forest তুলনামূলকভাবে বেশি কম্পিউটেশনাল ক্ষমতা ব্যবহার করে।

Decision Tree এবং Random Forest এর মধ্যে পার্থক্য

বৈশিষ্ট্যDecision TreeRandom Forest
বৈশিষ্ট্যএকক Decision Treeএকাধিক Decision Tree এর সমন্বয়
Overfittingঅধিক ঝুঁকি থাকেOverfitting কম হয়
প্রশিক্ষণের গতিদ্রুতধীর (এমনকি একাধিক Decision Tree তৈরি করার কারণে)
ভোটিংনেইহ্যাঁ, বিভিন্ন Decision Tree এর ফলাফলগুলির ভোট নেয়
ফলাফলকম স্থিতিশীল এবং কম্পিউটেশনালভাবে ব্যয়বহুলঅধিক স্থিতিশীল এবং নির্ভুল, তবে বেশি কম্পিউটেশনালভাবে ব্যয়বহুল
ব্যাখ্যাযোগ্যতাসহজ এবং ব্যাখ্যাযোগ্যব্যাখ্যা করা কঠিন

সারাংশ

Decision Tree এবং Random Forest উভয়ই মেশিন লার্নিংয়ের শক্তিশালী অ্যালগরিদম, তবে তারা বিভিন্নভাবে কাজ করে। Decision Tree একক সিদ্ধান্ত গ্রহণের প্রক্রিয়া, যেখানে Random Forest একাধিক Decision Tree এর ফলাফল একত্রিত করে। Random Forest Decision Tree এর তুলনায় আরো স্থিতিশীল এবং নির্ভুল, তবে এটি অনেক বেশি কম্পিউটেশনালভাবে ব্যয়বহুল। Decision Tree সহজ এবং ব্যাখ্যাযোগ্য হলেও, এটি সহজেই overfitting এর শিকার হতে পারে, যেখানে Random Forest এই সমস্যা অনেক কমায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...